<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>FE - react - base</title>
  <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
  
  <p>FE - react - base</p>

  <div id="example"></div>

  <script type="text/babel">
    ReactDOM.render(
      <h1>Hello, world!</h1>,
      document.getElementById('example')
    );


    
    /*
      S-1
      ReactDOM.render(VDOM, Element);
      VDOM: 虚拟 Dom
            创建虚拟 Dom 可以使用 jsx 推荐，也可以使用 react.createElement() 去创建，相对麻烦太多
      Element:虚拟 Dom 挂载在哪个节点之上
    */


    /*
      S-2
      关于虚拟 DOM
      本质上是 Object类型的对象，一般对象
      虚拟 dom 没有真实 dom上那么多的属性
      虚拟 dom 最终会被 React 转化为真实 Dom ，呈现在页面上
    */

    /*
      S-3
      JSX 语法规则
      1、定义虚拟 DOM 时，不要写引号
      2、标签中混入 js表达式时要用{}
      3、样式的类名指定要用 className , 不要使用 class
      4、内联样式使用 {{color:'white', fontSize:'20px'}}
      5、虚拟 DOM 只能有一个根标签
      6、标签必须闭合
      7、标签首字母
          小写：将标签转为 html 中同名标签，若无对应同名标签，则报错 
          大写：react去渲染对应组件，若组件没有定义，报错
    */


  </script>

</body>
</html>